CollectionView এবং Data Sorting/Filtering

Microsoft Technologies - ডব্লিউপিএফ (WPF) - Data Template এবং Item Controls
254

CollectionView একটি WPF ডেটা-ভিউ সমাধান, যা আপনাকে ডেটাকে সজ্জিত (sort), ফিল্টার (filter), এবং পেজিনেট (paginate) করার সুবিধা দেয়। এটি ডেটা সোর্স (যেমন একটি ObservableCollection বা List) এবং UI এর মধ্যে একটি "ভিউ" তৈরি করে, যা ডেটাকে ভিজ্যুয়ালি উপস্থাপন করার জন্য প্রক্রিয়া করে। CollectionView সাধারণত ডেটা লিস্ট বা কোলেকশনগুলোর সাথে কাজ করতে ব্যবহৃত হয়, বিশেষ করে যখন ডেটা সজ্জিত বা ফিল্টার করতে হয়।

CollectionView এর প্রাথমিক ধারণা

CollectionView একটি কনটেইনার (container) যা একটি ডেটা কোলেকশন (যেমন ObservableCollection<T> বা List<T>) কে UI তে দেখানোর জন্য প্রক্রিয়া করে। এটি ডেটার সজ্জন, ফিল্টারিং, গ্রুপিং এবং পেজিনেশন করার ক্ষমতা প্রদান করে। CollectionView ডেটার ভিউ ম্যানেজ করার জন্য WPF এর বিভিন্ন কন্ট্রোল যেমন ListView, ComboBox, DataGrid ইত্যাদির সাথে ব্যবহৃত হয়।


CollectionView এর বৈশিষ্ট্য (Features of CollectionView)

  • Sorting: ডেটাকে একটি নির্দিষ্ট অর্ডারে সাজানো (ascending বা descending)।
  • Filtering: ডেটার মধ্যে কিছু নির্দিষ্ট মান বা শর্ত মেনে ফলাফল দেখানো।
  • Grouping: ডেটাকে একটি নির্দিষ্ট শর্তের উপর ভিত্তি করে গ্রুপ করা (যেমন, ক্যাটেগরি বা তারিখ অনুযায়ী)।
  • Current Item Management: ডেটার মধ্যে একটি "current item" বা নির্বাচিত আইটেম পরিচালনা করা।

CollectionView ব্যবহার করা (Using CollectionView)

WPF-এ CollectionView তৈরি করতে, আপনি সাধারণত CollectionViewSource ব্যবহার করবেন, যা ডেটাকে সরাসরি প্রক্রিয়া করতে সহায়তা করে। একটি CollectionView তৈরির জন্য CollectionViewSource.GetDefaultView() ব্যবহার করা যেতে পারে।

উদাহরণ:

ধরা যাক, আমাদের কাছে একটি ObservableCollection রয়েছে, এবং আমরা এটি UI তে দেখাতে চাই:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

এখন, আমাদের একটি ObservableCollection তৈরি করা যাক এবং এটি CollectionView এর মাধ্যমে ভিউতে দেখাবো।

ObservableCollection<Person> people = new ObservableCollection<Person>
{
    new Person { Name = "John", Age = 30 },
    new Person { Name = "Alice", Age = 25 },
    new Person { Name = "Bob", Age = 35 }
};

// Create CollectionView
CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(people);

// Bind to ListView in XAML
myListView.ItemsSource = view;

এখানে, CollectionViewSource.GetDefaultView(people) এর মাধ্যমে people কোলেকশনের জন্য একটি CollectionView তৈরি করা হয়েছে, এবং এটি ListView এর ItemsSource এ ব্যাইন্ড করা হয়েছে।


Data Sorting (ডেটা সজ্জন)

Sorting ব্যবহার করে আপনি ডেটাকে নির্দিষ্ট একটি অর্ডারে সাজাতে পারেন। CollectionView এ ডেটা সাজানোর জন্য SortDescriptions প্রপার্টি ব্যবহার করা হয়।

Sorting উদাহরণ:

// Sorting by Age
view.SortDescriptions.Clear();  // Clear existing sort criteria
view.SortDescriptions.Add(new SortDescription("Age", ListSortDirection.Ascending));

এখানে, SortDescriptions.Add() দিয়ে আমরা Age প্রপার্টির উপর সজ্জন (ascending) যুক্ত করেছি। এখন, view তে থাকা আইটেমগুলি Age অনুযায়ী সাজানো হবে।


Data Filtering (ডেটা ফিল্টারিং)

Filtering ব্যবহার করে আপনি ডেটার মধ্যে শর্ত অনুসারে নির্দিষ্ট আইটেমগুলো প্রদর্শন করতে পারেন। CollectionView এ ফিল্টারিংয়ের জন্য Filter প্রপার্টি ব্যবহার করা হয়।

Filtering উদাহরণ:

// Filtering by Age > 30
view.Filter = (item) =>
{
    Person person = item as Person;
    return person != null && person.Age > 30;
};

এখানে, Filter প্রপার্টিতে একটি ফাংশন সেট করা হয়েছে যা Age ৩০ এর বেশি এমন Person আইটেমগুলোকে ফিল্টার করবে এবং UI তে শুধুমাত্র সেগুলো দেখাবে।


Sorting এবং Filtering একসাথে ব্যবহার করা

আপনি একসাথে Sorting এবং Filtering ব্যবহার করতে পারেন, যা ডেটাকে প্রথমে ফিল্টার করবে এবং পরে সাজাবে।

উদাহরণ:

// Filter by Age > 30
view.Filter = (item) =>
{
    Person person = item as Person;
    return person != null && person.Age > 30;
};

// Sort by Name
view.SortDescriptions.Clear();
view.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));

এখানে, প্রথমে Age এর ওপর ফিল্টার করা হচ্ছে এবং তারপর Name অনুযায়ী সজ্জন করা হচ্ছে। এর ফলে শুধুমাত্র Age > 30 আইটেমগুলি Name অনুযায়ী সাজানো হবে।


CollectionView এর সাথে গ্রুপিং (Grouping with CollectionView)

Grouping ব্যবহার করে আপনি ডেটাকে বিভিন্ন গ্রুপে ভাগ করতে পারেন, যেমন একটি ক্যাটেগরি বা তারিখ অনুযায়ী। গ্রুপিংয়ের জন্য GroupDescriptions প্রপার্টি ব্যবহার করা হয়।

গ্রুপিং উদাহরণ:

// Grouping by Age
view.GroupDescriptions.Clear();
view.GroupDescriptions.Add(new PropertyGroupDescription("Age"));

এখানে, PropertyGroupDescription("Age") এর মাধ্যমে আমরা ডেটাকে Age এর ওপর ভিত্তি করে গ্রুপ করেছি। এর ফলে একই Age মানের আইটেমগুলি একসাথে গ্রুপ হয়ে থাকবে।


সারাংশ (Summary)

  • CollectionView: ডেটা ভিউ এবং UI এর মধ্যে একটি মধ্যবর্তী স্তর, যা ডেটাকে সজ্জিত (sort), ফিল্টার (filter), এবং গ্রুপ (group) করার জন্য ব্যবহৃত হয়।
  • Sorting: ডেটাকে একটি নির্দিষ্ট অর্ডারে সাজানো (ascending বা descending)।
  • Filtering: ডেটার মধ্যে কিছু নির্দিষ্ট শর্ত মেনে ফলাফল দেখানো।
  • Grouping: ডেটাকে একটি নির্দিষ্ট শর্তের উপর ভিত্তি করে গ্রুপ করা (যেমন, ক্যাটেগরি বা তারিখ অনুযায়ী)।

CollectionView এর মাধ্যমে WPF অ্যাপ্লিকেশনে ডেটা পরিচালনা সহজ হয় এবং এটি UI তে ডেটার ডাইনামিক পরিবর্তনগুলোকে স্বয়ংক্রিয়ভাবে প্রতিফলিত করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...